package com.pick.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.pick.admin.entity.SysMenu;

import java.util.List;

/**
 * 系统菜单服务接口
 */
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 获取菜单树
     */
    List<SysMenu> getMenuTree();

    /**
     * 创建菜单
     */
    boolean createMenu(SysMenu menu);

    /**
     * 更新菜单
     */
    boolean updateMenu(SysMenu menu);

    /**
     * 删除菜单
     */
    boolean deleteMenu(Long menuId);

    /**
     * 根据用户ID获取菜单树
     */
    List<SysMenu> getMenuTreeByUserId(Long userId);

    /**
     * 检查菜单名称是否存在
     * @param menuName 菜单名称
     * @param parentId 父菜单ID
     * @param excludeId 排除的菜单ID（用于更新时排除自身）
     * @return 是否存在
     */
    boolean isMenuNameExists(String menuName, Long parentId, Long excludeId);

    /**
     * 检查菜单路径是否存在
     * @param menuPath 菜单路径
     * @param excludeId 排除的菜单ID（用于更新时排除自身）
     * @return 是否存在
     */
    boolean isMenuPathExists(String menuPath, Long excludeId);
}